/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package main;

import java.util.LinkedList;
import java.util.List;

/**
 *
 * @author Danilo
 */
public class Jogador
{
    private List<Carta> mao;
    private boolean podeJogarRodada = true;

    public Jogador(Deck deck)
    {
        this.mao = new LinkedList<Carta>();
        
        for(int i = 0; i < 7; i++)
        {
            this.mao.add(deck.compraCartaTopo());
        }
    }

    public boolean isPodeJogarRodada()
    {
        return podeJogarRodada;
    }

    public void setPodeJogarRodada(boolean podeJogarRodada)
    {
        this.podeJogarRodada = podeJogarRodada;
    }
    
    public void compraCarta(Deck deck, int numeroCartas)
    {
        for(int i = 0; i < numeroCartas; i++)
        {
            this.mao.add(deck.compraCartaTopo());
        }
    }
    
    public void compraCarta(Carta nova)
    {
        this.mao.add(nova);
    }
    
    public Carta removeCarta(Carta rem)
    {
        Carta temp = null;
        
        for(Carta elem : this.mao)
        {
            if(elem.isIdentico(rem))
            {
                temp = elem;
                this.mao.remove(rem);
            }
        }
        
        return temp;
    }
    
    
//    public boolean existenciaCartaMao(Carta possivel)
//    {
//        for(Carta elem : this.mao)
//        {
//            elem.
//        }
//        
//        return false;
//    }

    public List<Carta> getMao()
    {
        return mao;
    }

    public void setMao(List<Carta> mao)
    {
        this.mao = mao;
    }
    
    public String exibeMao()
    {
        String mao = "";
        
        for(Carta elem : this.mao)
        {
            mao += elem.toString() + "  ";
        }
        
        return mao;
    }

    public String exibeCartasCompativeis(Carta cartaTopoMesa)
    {
        String texto = "";
        
        for(Carta elem : this.mao)
        {
            if(elem.isCompatible(cartaTopoMesa))
            {
                texto += elem.toString() + " ";
            }
        }
        
        return texto;
    }

    public boolean existeCartaMaoJogador(int valorCartaBaixada, String corCartaBaixada)
    {
        Carta temp = new Carta(corCartaBaixada, valorCartaBaixada);
        
        for(Carta elem : this.mao)
        {
            if(elem.isIdentico(temp))
                return true;
        }
        
        return false;
    }

    public Carta capturaCarta(int valorCartaBaixada, String corCartaBaixada)
    {
        Carta temp = new Carta(corCartaBaixada, valorCartaBaixada);
        
        for(Carta elem : this.mao)
        {
            if(elem.isIdentico(temp))
                return temp;
        }
        
        return null;
    }
    
}
